package javaLearning.接口与继承;

/**
 * @author : K k
 * @date : 10:16 2020/8/13
 * 多继承案例
 */
public class ExtendDemo {
    int id=1;
    public ExtendDemo(){}

    public void action(){
        System.out.println("我是父亲"+id);
    }

    public static void main(String[] args) {
        Grandson grandson=new Grandson();
        grandson.action();
    }
}

class son extends ExtendDemo{
//    @Override
//    public void action() {
//        this.id=2;
//        System.out.println("我是儿子"+id);
//        super.action();
//    }
}

class Grandson extends son{
    @Override
    public void action() {
        super.action();
    }
    public void action1(){
        System.out.println("father:"+super.hashCode()+" myself:"+this.hashCode());
    }

    public static void main(String[] args) {
        /*double i1=100.0;
        double i2=100.0;
        System.out.println(i1==i2);
*/
        //合法
        son son=new Grandson(); //向上转型  父类指向一个子类对象
        Grandson grandson= (Grandson) son;//向下转型  所以将父类对象之间转为子类对象合法

        //不合法
        son son1=new son();//父类指向一个父类对象
        Grandson grandson1= (Grandson) son1; //向下转型 不合法 父类变量指向父类对象，无法转型ClassCastException


    }
}
